Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2010
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 6 з дисципліни: Програмування ч. 1 (ООП) на тему: Класи та об’єкти” Лабораторна робота № 6 Тема роботи: Перевантаження операторів Мета роботи: познайомитися із перевантаженням операторів. Завдання: Описати клас, що реалізовує вказаний нижче тип даних. Клас повинен містити множину конструкторів для створення об'єктів певного типу (конструктор по замочуванню та з параметрами, конструктор копії) та подані у таблиці операції над об'єктами класу (плюс обов'язково операцію присвоювання) з використанням механізму перевантаження операцій. Написати програму, яка демонструє роботу з об'єктами цього класу. Організувати виведення та введення даних за допомогою класів-потоків сin та cout. Клас Fraction (дроби) Операції: + =, / =. Текст програми: //--------------------------- main.c -------------------------- #include "Fraction.h" void main() { Fraction d1,d2(1,2),d3; cout << "d1=" << d1 << "; d2=" << d2 << endl << endl; d1+=d2; cout << "d1+=d2" << endl; cout << "d1=" << d1 << "; d2=" << d2 << endl << endl; d1/=d2; d2/=d1; cout << "d1/=d2" << endl; cout << "d2/=d1" << endl; cout << "d1=" << d1 << "; d2=" << d2 << endl; cin >> d3; cout << d3; getchar(); getchar(); } //------------------------ Fraction.h ------------------------- #include <iostream.h> #include <iostream.h> #include <stdio.h> using namespace std; //Клас дроби class Fraction { private: //Чисельник і знаменник int ch,zn; public: //Конструктор по замовчуванню Fraction(); //Конструктор з параметрами Fraction(int c, int z); //Конструктор копіювання Fraction(Fraction &fract); //Деструктор virtual ~Fraction(); //Метод скорочення дробу void Skor(); //Перевантаження операторів = += /= Fraction &operator = (Fraction &frac); Fraction &operator += (Fraction &frac); Fraction &operator /= (Fraction &frac); //Перевантаження операторів вводу-виводу friend ostream &operator << (ostream& os, Fraction &frac); friend istream &operator >> (istream& is, Fraction &frac); }; //----------------------- Fraction.cpp ------------------------- #include "Fraction.h" //Метод скорочення дробу void Fraction::Skor() { int m=zn, i; if (ch > zn) m = ch; if (ch % zn == 0){ ch /= zn; zn = 1; } for(i=m; i>1; i--){ if (ch % i == 0 && zn % i == 0){ ch /= i; zn /= i; } } } //Конструктор по замовчуванню Fraction::Fraction() { ch=1; zn=1; } //Конструктор з параметрами Fraction::Fraction(int c,int z) { ch=c; zn=z; } //Конструктор копіювання Fraction::Fraction(Fraction &fract) { ch=fract.ch; zn=fract.zn; Skor(); } //Деструктор Fraction::~Fraction(){} //Перевантаження операторів =, +=, /= Fraction &Fraction::operator = (Fraction &frac) { if(this != &frac) { ch=frac.ch; zn=frac.zn; } Skor(); return *this; } Fraction &Fraction::operator += (Fraction &frac) { ch=ch*frac.zn+frac.ch*zn; zn*=frac.ch; Skor(); return *this; } Fraction &Fraction::operator /= (Fraction &frac) { ch*=frac.zn; zn*=frac.ch; Skor(); return *this; } //Перевантаження операторів ввлду-виводу ostream &operator<< (ostream& os, Fraction &frac) { frac.Skor(); os << "(" << frac.ch<< "/" <<frac.zn << ")"; return os; } istream &operator>> (istream& is, Fraction &frac) { cout << "Ch="; is >> frac.ch; cout << "Zn="; is >> frac.zn; return is; } Результати роботи програми:  Висновок: На цій лабораторній роботі я ознайомився з перевантаженням операторів. Стоворив клас для зберігання і обробки дробів. Перевантажив оператори =, /=, +=, а також оператори потокового вводу-виводу.
Антиботан аватар за замовчуванням

19.11.2013 20:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини